from wxpy import *
from openai import OpenAI

# Kimi API相关配置
client = OpenAI(
    api_key="sk-pXBfE8aFcKU4xC4l3oRsl6ECVABUXWoEs1kJw4hyIGGKFxUo",  # 替换为真实申请到的API Key
    base_url="https://api.moonshot.cn/v1",
)

# 用于处理接收到的微信消息并调用Kimi API回复的函数
def reply_message(msg, contact):
    if msg.type == 'Text':  # 只处理文本消息，可按需扩展处理其他类型
        try:
            completion = client.chat.completions.create(
                model="moonshot-v1-8k",
                messages=[
                    {"role": "system", "content":
                        "你是Kimi，由Moonshot AI提供的人工智能助手，你更擅长中文和英文的对话。"
                        "你会为用户提供安全，有帮助，准确的回答。"
                        "同时，你会拒绝一切涉及恐怖主义，种族歧视，黄色暴力等问题的回答。"
                        "Moonshot AI为专有名词，不可翻译成其他语言。"},
                    {"role": "user", "content": msg.text}
                ],
                temperature=0.3,
            )
            contact.send(completion.choices[0].message.content)
        except Exception as e:
            print(f"调用Kimi API出现错误: {e}")
            contact.send("抱歉，暂时无法回复消息")

# 定义要检测的联系人列表
contacts = ['瓜子', '文件传输助手']

# 登录微信并处理消息
def handle_messages():
    bot = Bot(cache_path=False)  # 使用缓存，避免重复扫码登录
    for contact in contacts:
        friend = bot.friends().search(contact)[0]
        @bot.register(friend)
        def reply_friend_message(msg):
            reply_message(msg, friend)
    embed()  # 保持程序运行，持续监听消息

if __name__ == "__main__":
    handle_messages()